/* JString - Decompiled by JODE
 * Visit http://jode.sourceforge.net/
 */
import java.awt.FontMetrics;
import java.awt.Graphics;

public class JString implements Interface1 {
	public boolean aBoolean1226 = true;
	public static Class7 aClass7_1227;
	public int length;
	public static int anInt1229 = 0;
	public int hashCode;
	public static int anInt1231 = -1;
	public static boolean aBoolean1232 = true;
	public byte[] characters;
	public static JString aClass3_1234;
	public static JString aClass3_1235;
	public static PacketStream loginOutputStream;
	public static JString aClass3_1237;
	public static JString aClass3_1238;
	public static int[] anIntArray1239;
	public static int anInt1240;
	/* synthetic */public static Class aClass1241;

	public static void method55(int i, JString class3, int i_0_, JString class3_1_, byte i_2_, int i_3_, int i_4_) {
		if (Class39_Sub5_Sub11.anInt1841 < 500) {
			if (class3_1_.length() <= 0)
				Class33.aClass3Array601[Class39_Sub5_Sub11.anInt1841] = class3;
			else
				Class33.aClass3Array601[Class39_Sub5_Sub11.anInt1841] = Class39_Sub5_Sub11.method708((new JString[] { class3, Class53.aClass3_953, class3_1_ }), 14569);
			Class35.anIntArray621[Class39_Sub5_Sub11.anInt1841] = i_4_;
			Class11.anIntArray176[Class39_Sub5_Sub11.anInt1841] = i_3_;
			Class12.anIntArray196[Class39_Sub5_Sub11.anInt1841] = i;
			Class43.anIntArray820[Class39_Sub5_Sub11.anInt1841] = i_0_;
			Class39_Sub5_Sub11.anInt1841++;
		}
	}

	public int getHashCode() {
		int i_5_ = 0;
		for (int i_6_ = 0; i_6_ < length; i_6_++)
			i_5_ = (characters[i_6_] & 0xff) + ((i_5_ << 5) - i_5_);
		return i_5_;
	}

	public JString method57(int i) {
		long l = getHashCodeLong(0);
		synchronized (aClass1241 != null ? aClass1241 : (aClass1241 = classForName("JString"))) {
			if (Class7.aClass19_106 != null) {
				for (Class39_Sub4 class39_sub4 = ((Class39_Sub4) Class7.aClass19_106.method245((byte) -19, l)); class39_sub4 != null; class39_sub4 = (Class39_Sub4) Class7.aClass19_106.method242((byte) 79)) {
					if (equals(class39_sub4.aClass3_1325))
						return class39_sub4.aClass3_1325;
				}
			} else
				Class7.aClass19_106 = new Class19(4096);
			Class39_Sub4 class39_sub4 = new Class39_Sub4();
			aBoolean1226 = false;
			class39_sub4.aClass3_1325 = this;
			Class7.aClass19_106.method238(l, class39_sub4, (byte) -127);
		}
		return this;
	}

	public JString formatCapitalization(boolean bool) {
		JString class3_7_ = new JString();
		class3_7_.length = length;
		class3_7_.characters = new byte[length];
		boolean bool_8_ = bool;
		for (int i = 0; i < length; i++) {
			byte i_9_ = characters[i];
			if (i_9_ >= 97 && i_9_ <= 122 || i_9_ >= -32 && i_9_ <= -2 && i_9_ != -9) {
				if (bool_8_)
					i_9_ -= 32;
				bool_8_ = false;
			} else if (i_9_ >= 65 && i_9_ <= 90 || i_9_ >= -64 && i_9_ <= -34 && i_9_ != -41) {
				if (!bool_8_)
					i_9_ += 32;
				bool_8_ = false;
			}
			if (i_9_ == 46 || i_9_ == 33 || i_9_ == 63)
				bool_8_ = true;
			class3_7_.characters[i] = i_9_;
		}
		return class3_7_;
	}

	public JString substring(int start, int end) {
		JString class3_12_ = new JString();
		class3_12_.characters = new byte[-start + end];
		class3_12_.length = end - start;
		ArrayOperations.copy(characters, start, class3_12_.characters, 0, class3_12_.length);
		return class3_12_;
	}

	public static boolean method60(int i, JString class3) {
		if (i != 21469)
			method95(18);
		if (class3 == null)
			return false;
		for (int i_13_ = 0; Class4.anInt62 > i_13_; i_13_++) {
			if (class3.equalsIgnoreCase(Class39_Sub5_Sub4_Sub1.aClass3Array2188[i_13_]))
				return true;
		}
		if (class3.equalsIgnoreCase((Class7.aClass39_Sub5_Sub4_Sub4_Sub2_109.aClass3_2521)))
			return true;
		return false;
	}

	public boolean isNumber(boolean bool, int numBase) {
		if (bool != true)
			return false;
		if (numBase < 1 || numBase > 36)
			numBase = 10;
		boolean bool_14_ = false;
		boolean bool_15_ = false;
		int i_16_ = 0;
		for (int i_17_ = 0; i_17_ < length; i_17_++) {
			int i_18_ = characters[i_17_] & 0xff;
			if (i_17_ == 0) {
				if (i_18_ == 45) {
					bool_14_ = true;
					continue;
				}
				if (i_18_ == 43)
					continue;
			}
			if (i_18_ >= 48 && i_18_ <= 57)
				i_18_ -= 48;
			else if (i_18_ >= 65 && i_18_ <= 90)
				i_18_ -= 55;
			else {
				if (i_18_ < 97 || i_18_ > 122)
					return false;
				i_18_ -= 87;
			}
			if (i_18_ >= numBase)
				return false;
			if (bool_14_)
				i_18_ = -i_18_;
			int i_19_ = i_18_ + i_16_ * numBase;
			if (i_16_ != i_19_ / numBase)
				return false;
			i_16_ = i_19_;
			bool_15_ = true;
		}
		return bool_15_;
	}

	public String toString() {
		String s = new String(characters);
		return s;
	}

	public static void method62(int i) {
		if (!Class13.aBooleanArray200[98]) {
			if (!Class13.aBooleanArray200[99])
				Class41.anInt773 /= 2;
			else
				Class41.anInt773 += (-Class41.anInt773 - 12) / 2;
		} else
			Class41.anInt773 += (-Class41.anInt773 + 12) / 2;
		if (!Class13.aBooleanArray200[96]) {
			if (!Class13.aBooleanArray200[97])
				Class36.anInt642 /= 2;
			else
				Class36.anInt642 += (-Class36.anInt642 + 24) / 2;
		} else
			Class36.anInt642 += (-24 - Class36.anInt642) / 2;
		Class34.anInt605 = Class36.anInt642 / 2 + Class34.anInt605 & 0x7ff;
		RSSocket.anInt301 += Class41.anInt773 / 2;
		if (RSSocket.anInt301 < 128)
			RSSocket.anInt301 = 128;
		if (RSSocket.anInt301 > 383)
			RSSocket.anInt301 = 383;
		int i_20_ = (RuntimeException_Sub1.anInt1216 + Class7.aClass39_Sub5_Sub4_Sub4_Sub2_109.anInt2301);
		int i_21_ = (Class7.aClass39_Sub5_Sub4_Sub4_Sub2_109.anInt2275 + Stream.anInt1361);
		if (Class41.anInt765 - i_20_ < -500 || -i_20_ + Class41.anInt765 > 500 || Class39_Sub10.anInt1431 - i_21_ < -500 || -i_21_ + Class39_Sub10.anInt1431 > 500) {
			Class41.anInt765 = i_20_;
			Class39_Sub10.anInt1431 = i_21_;
		}
		if (Class41.anInt765 != i_20_)
			Class41.anInt765 += (i_20_ - Class41.anInt765) / 16;
		if (i_21_ != Class39_Sub10.anInt1431)
			Class39_Sub10.anInt1431 += (i_21_ - Class39_Sub10.anInt1431) / 16;
		int i_22_ = Class41.anInt765 >> 7;
		int i_23_ = Class39_Sub10.anInt1431 >> 7;
		int i_24_ = Class14.method212(Class39_Sub10.anInt1431, 9990, Class11.currentPlane, Class41.anInt765);
		int i_25_ = 0;
		if (i_22_ > 3 && i_23_ > 3 && i_22_ < 100 && i_23_ < 100) {
			for (int i_26_ = i_22_ - 4; i_26_ <= i_22_ + 4; i_26_++) {
				for (int i_27_ = i_23_ - 4; i_27_ <= i_23_ + 4; i_27_++) {
					int i_28_ = Class11.currentPlane;
					if (i_28_ < 3 && (Class55.tileSettings[1][i_26_][i_27_] & 0x2) == 2)
						i_28_++;
					int i_29_ = i_24_ - (Class67.anIntArrayArrayArray1175[i_28_][i_26_][i_27_]);
					if (i_25_ < i_29_)
						i_25_ = i_29_;
				}
			}
		}
		int i_30_ = i_25_ * 192;
		if (i_30_ > 98048)
			i_30_ = 98048;
		if (i_30_ < 32768)
			i_30_ = 32768;
		if (i_30_ > Class7.anInt101)
			Class7.anInt101 += (i_30_ - Class7.anInt101) / 24;
		else if (i_30_ < Class7.anInt101)
			Class7.anInt101 += (-Class7.anInt101 + i_30_) / 80;
	}

	public JString append(int i, byte i_31_, JString class3_32_) {
		if (!aBoolean1226)
			throw new IllegalArgumentException();
		if (i > length)
			throw new IllegalArgumentException();
		hashCode = 0;
		if (characters.length < i + class3_32_.length) {
			int i_33_;
			for (i_33_ = 1; class3_32_.length + i > i_33_; i_33_ += i_33_) {
				/* empty */
			}
			byte[] is = new byte[i_33_];
			ArrayOperations.copy(characters, 0, is, 0, length);
			characters = is;
		}
		ArrayOperations.copy(class3_32_.characters, 0, characters, i, class3_32_.length);
		if (i_31_ != 84)
			indexOf((byte) -32, null, -24);
		if (i + class3_32_.length > length)
			length = i + class3_32_.length;
		return this;
	}

	public static void method64(byte i) {
		aClass3_1234 = null;
		aClass3_1238 = null;
		aClass3_1235 = null;
		loginOutputStream = null;
		aClass7_1227 = null;
		anIntArray1239 = null;
		aClass3_1237 = null;
	}

	public boolean startsWith(JString class3_34_) {
		if (class3_34_.length > length)
			return false;
		for (int i = 0; i < class3_34_.length; i++) {
			if (characters[i] != class3_34_.characters[i])
				return false;
		}
		return true;
	}

	public int width(FontMetrics fontmetrics, int i) {
		String string;
		try {
			string = new String(characters, 0, length, "ISO-8859-1");
		} catch (java.io.UnsupportedEncodingException unsupportedencodingexception) {
			string = new String(characters, 0, length);
		}
		return fontmetrics.stringWidth(string);
	}

	public int parseInt(int numBase, byte i_35_) {
		boolean bool = false;
		boolean negative = false;
		int i_37_ = 0;
		if (i_35_ < 72)
			substring(89, 87);
		if (numBase < 1 || numBase > 36)
			numBase = 10;
		for (int i_38_ = 0; i_38_ < length; i_38_++) {
			int i_39_ = characters[i_38_] & 0xff;
			if (i_38_ == 0) {
				if (i_39_ == 45) {
					negative = true;
					continue;
				}
				if (i_39_ == 43)
					continue;
			}
			if (i_39_ >= 48 && i_39_ <= 57)
				i_39_ -= 48;
			else if (i_39_ < 65 || i_39_ > 90) {
				if (i_39_ >= 97 && i_39_ <= 122)
					i_39_ -= 87;
				else
					throw new NumberFormatException();
			} else
				i_39_ -= 55;
			if (i_39_ >= numBase)
				throw new NumberFormatException();
			if (negative)
				i_39_ = -i_39_;
			int i_40_ = i_39_ + numBase * i_37_;
			if (i_40_ / numBase != i_37_)
				throw new NumberFormatException();
			i_37_ = i_40_;
			bool = true;
		}
		if (!bool)
			throw new NumberFormatException();
		return i_37_;
	}

	public int indexOf(boolean bool, int c, int offset) {
		if (bool)
			return -92;
		byte i_42_ = (byte) c;
		for (int i_43_ = offset; i_43_ < length; i_43_++) {
			if (i_42_ == characters[i_43_])
				return i_43_;
		}
		return -1;
	}

	public JString trim(byte i) {
		int i_44_ = 0;
		int i_45_ = length;
		for (/**/; length > i_44_; i_44_++) {
			if ((characters[i_44_] < 0 || characters[i_44_] > 32) && (characters[i_44_] & 0xff) != 160)
				break;
		}
		for (/**/; i_44_ < i_45_ && ((characters[i_45_ - 1] >= 0 && characters[i_45_ - 1] <= 32) || (characters[i_45_ - 1] & 0xff) == 160); i_45_--) {
			/* empty */
		}
		if (i_44_ == 0 && length == i_45_)
			return this;
		JString class3_46_ = new JString();
		class3_46_.length = -i_44_ + i_45_;
		class3_46_.characters = new byte[class3_46_.length];
		for (int i_47_ = 0; i_47_ < class3_46_.length; i_47_++)
			class3_46_.characters[i_47_] = characters[i_47_ + i_44_];
		return class3_46_;
	}

	public int length() {
		return length;
	}

	public JString appendChar(int i, int i_48_) {
		if (i_48_ <= 0 || i_48_ > 255)
			throw new IllegalArgumentException("invalid char");
		if (!aBoolean1226)
			throw new IllegalArgumentException();
		hashCode = i;
		if (length == characters.length) {
			int i_49_;
			for (i_49_ = 1; length >= i_49_; i_49_ += i_49_) {
				/* empty */
			}
			byte[] is = new byte[i_49_];
			ArrayOperations.copy(characters, 0, is, 0, length);
			characters = is;
		}
		characters[length++] = (byte) i_48_;
		return this;
	}

	public long toInt64() {
		long l = 0L;
		for (int i_50_ = 0; length > i_50_; i_50_++) {
			if (i_50_ >= 12)
				break;
			l *= 37L;
			byte i_51_ = characters[i_50_];
			if (i_51_ < 65 || i_51_ > 90) {
				if (i_51_ >= 97 && i_51_ <= 122)
					l += (long) (i_51_ + 1 - 97);
				else if (i_51_ >= 48 && i_51_ <= 57)
					l += (long) (i_51_ - 21);
			} else
				l += (long) (1 + i_51_ - 65);
		}
		for (/**/; l % 37L == 0L && l != 0L; l /= 37L) {
			/* empty */
		}
		return l;
	}

	public JString capitalizeAfterQuestion(byte i) {
		JString class3_52_ = new JString();
		class3_52_.length = length;
		class3_52_.characters = new byte[length];
		boolean bool = true;
		for (int i_53_ = 0; i_53_ < length; i_53_++) {
			byte i_54_ = characters[i_53_];
			if (i_54_ == 95) { //95 = ?
				class3_52_.characters[i_53_] = (byte) 32;
				bool = true;
			} else if (i_54_ >= 97 && i_54_ <= 122 && bool) {
				class3_52_.characters[i_53_] = (byte) (i_54_ - 32);
				bool = false;
			} else {
				class3_52_.characters[i_53_] = i_54_;
				bool = false;
			}
		}
		return class3_52_;
	}

	public JString censor() {
		JString class3_55_ = new JString();
		class3_55_.length = length;
		class3_55_.characters = new byte[length];
		for (int i_56_ = 0; i_56_ < length; i_56_++)
			class3_55_.characters[i_56_] = (byte) 42;
		return class3_55_;
	}

	public JString fixLength() {
		if (!aBoolean1226)
			throw new IllegalArgumentException();
		hashCode = 0;
		if (characters.length != length) {
			byte[] is = new byte[length];
			ArrayOperations.copy(characters, 0, is, 0, length);
			characters = is;
		}
		return this;
	}

	public int parseInt() {
		return parseInt(10, (byte) 84);
	}

	public JString toLowerCase() {
		JString class3_57_ = new JString();
		class3_57_.length = length;
		class3_57_.characters = new byte[length];
		for (int i_58_ = 0; length > i_58_; i_58_++) {
			byte i_59_ = characters[i_58_];
			if (i_59_ >= 65 && i_59_ <= 90 || i_59_ >= -64 && i_59_ <= -34 && i_59_ != -41)
				i_59_ += 32;
			class3_57_.characters[i_58_] = i_59_;
		}
		return class3_57_;
	}

	public byte[] getBytes() {
		byte[] is = new byte[length];
		ArrayOperations.copy(characters, 0, is, 0, length);
		return is;
	}

	public void draw(int i, int i_60_, byte i_61_, Graphics graphics) {
		String string;
		try {
			string = new String(characters, 0, length, "ISO-8859-1");
		} catch (java.io.UnsupportedEncodingException unsupportedencodingexception) {
			string = new String(characters, 0, length);
		}
		graphics.drawString(string, i_60_, i);
	}

	public int indexOf(JString class3_62_) {
		return indexOf((byte) 72, class3_62_, 0);
	}

	public JString formatUsername(int i) {
		JString class3_63_ = new JString();
		class3_63_.characters = new byte[12];
		int i_64_ = 0;
		class3_63_.length = 0;
		for (int i_65_ = 0; i_65_ < length; i_65_++) {
			if (characters[i_65_] < 65 || characters[i_65_] > 90) {
				if (characters[i_65_] >= 97 && characters[i_65_] <= 122 || (characters[i_65_] >= 48 && characters[i_65_] <= 57)) {
					class3_63_.characters[i_64_++] = characters[i_65_];
					class3_63_.length = i_64_;
				} else if (i_64_ > 0)
					class3_63_.characters[i_64_++] = (byte) 95;
			} else {
				class3_63_.characters[i_64_++] = (byte) (characters[i_65_] - 65 + 97);
				class3_63_.length = i_64_;
			}
			if (i_64_ == 12)
				break;
		}
		return class3_63_;
	}

	public JString append(JString class3_66_) {
		if (!aBoolean1226)
			throw new IllegalArgumentException();
		hashCode = 0;
		if (characters.length < class3_66_.length + length) {
			int i_67_;
			for (i_67_ = 1; class3_66_.length + length > i_67_; i_67_ += i_67_) {
				/* empty */
			}
			byte[] is = new byte[i_67_];
			ArrayOperations.copy(characters, 0, is, 0, length);
			characters = is;
		}
		ArrayOperations.copy(class3_66_.characters, 0, characters, length, class3_66_.length);
		length += class3_66_.length;
		return this;
	}

	public int copy(int i, int srcOffset, byte[] dest, int destOffset, int len) {
		ArrayOperations.copy(characters, srcOffset, dest, destOffset, -srcOffset + len);
		return -srcOffset + len;
	}

	public boolean equals(Object object) {
		throw new RuntimeException();
	}

	public boolean endsWith(JString class3_71_, int i) {
		if (length < class3_71_.length)
			return false;
		int i_72_ = length - class3_71_.length;
		for (int i_73_ = i; i_73_ < class3_71_.length; i_73_++) {
			if (characters[i_73_ + i_72_] != class3_71_.characters[i_73_])
				return false;
		}
		return true;
	}

	public JString substring(int i_74_) {
		return substring(i_74_, length);
	}

	public JString concatChar(int c) {
		if (c <= 0 || c > 255)
			throw new IllegalArgumentException("invalid char");
		JString class3_76_ = new JString();
		class3_76_.characters = new byte[length + 1];
		class3_76_.length = length + 1;
		ArrayOperations.copy(characters, 0, class3_76_.characters, 0, length);
		class3_76_.characters[length] = (byte) c;
		return class3_76_;
	}

	public int hashCode() {
		return getHashCode();
	}

	public boolean isNumber(int i) {
		if (i != 22415)
			isNumber(true, -17);
		return isNumber(true, 10);
	}

	public static void printArgumentsError(int i) {
		System.out.println("Usage: worldid, [live/office/local], [live/rc/wip], [lowmem/highmem], [free/members], [english/german]");
		System.exit(1);
	}

	public boolean equals(JString class3_77_) {
		if (class3_77_ == null)
			return false;
		if (class3_77_.length != length)
			return false;
		if (!aBoolean1226 || !class3_77_.aBoolean1226) {
			if (hashCode == 0) {
				hashCode = getHashCode();
				if (hashCode == 0)
					hashCode = 1;
			}
			if (class3_77_.hashCode == 0) {
				class3_77_.hashCode = class3_77_.getHashCode();
				if (class3_77_.hashCode == 0)
					class3_77_.hashCode = 1;
			}
			if (class3_77_.hashCode != hashCode)
				return false;
		}
		for (int i_78_ = 0; i_78_ < length; i_78_++) {
			if (characters[i_78_] != class3_77_.characters[i_78_])
				return false;
		}
		return true;
	}

	public int charAt(int i) {
		return characters[i] & 0xff;
	}

	public static void method91(byte i) {
		for (int i_80_ = 0; i_80_ < OnDemandFetcher.anInt1210; i_80_++) {
			int i_81_ = Renderable.anIntArray1734[i_80_];
			Class39_Sub5_Sub4_Sub4_Sub1 class39_sub5_sub4_sub4_sub1 = (Class39_Sub5_Sub4_Sub3.aClass39_Sub5_Sub4_Sub4_Sub1Array2241[i_81_]);
			if (class39_sub5_sub4_sub4_sub1 != null)
				Class39_Sub5_Sub2.method480((byte) 116, class39_sub5_sub4_sub4_sub1, (class39_sub5_sub4_sub4_sub1.aClass39_Sub5_Sub13_2492.anInt1870));
		}
	}

	public int indexOf(int i_82_) {
		return indexOf(false, i_82_, 0);
	}

	public int indexOf(byte i, JString class3_83_, int i_84_) {
		int[] is = new int[256];
		int[] is_85_ = new int[class3_83_.length];
		int[] is_86_ = new int[class3_83_.length];
		for (int i_87_ = 0; i_87_ < is.length; i_87_++)
			is[i_87_] = class3_83_.length;
		for (int i_88_ = 1; i_88_ <= class3_83_.length; i_88_++) {
			is_86_[i_88_ - 1] = (class3_83_.length << 1) - i_88_;
			is[Class34.method342(class3_83_.characters[i_88_ - 1], 255)] = -i_88_ + class3_83_.length;
		}
		int i_89_ = class3_83_.length + 1;
		int i_90_ = class3_83_.length;
		while (i_90_ > 0) {
			is_85_[i_90_ - 1] = i_89_;
			for (/**/; (i_89_ <= class3_83_.length && (class3_83_.characters[i_89_ - 1] != class3_83_.characters[i_90_ - 1])); i_89_ = is_85_[i_89_ - 1]) {
				if (is_86_[i_89_ - 1] >= -i_90_ + class3_83_.length)
					is_86_[i_89_ - 1] = class3_83_.length - i_90_;
			}
			i_90_--;
			i_89_--;
		}
		int i_91_ = i_89_;
		i_89_ = class3_83_.length + 1 - i_91_;
		int i_92_ = 1;
		int i_93_ = 0;
		int i_94_ = 1;
		while (i_94_ <= i_89_) {
			is_85_[i_94_ - 1] = i_93_;
			for (/**/; i_93_ >= 1 && (class3_83_.characters[i_93_ - 1] != class3_83_.characters[i_94_ - 1]); i_93_ = is_85_[i_93_ - 1]) {
				/* empty */
			}
			i_94_++;
			i_93_++;
		}
		while (i_91_ < class3_83_.length) {
			for (int i_95_ = i_92_; i_95_ <= i_91_; i_95_++) {
				if (class3_83_.length + i_91_ - i_95_ <= is_86_[i_95_ - 1])
					is_86_[i_95_ - 1] = i_91_ + class3_83_.length - i_95_;
			}
			i_92_ = i_91_ + 1;
			i_91_ = i_89_ + i_91_ - is_85_[i_89_ - 1];
			i_89_ = is_85_[i_89_ - 1];
		}
		int i_96_ = i_84_ + class3_83_.length - 1;
		if (i < 6)
			loginOutputStream = null;
		int i_97_;
		for (/**/; i_96_ < length; i_96_ += Math.max(is[characters[i_96_] & 0xff], is_86_[i_97_])) {
			for (i_97_ = class3_83_.length - 1; i_97_ >= 0 && (class3_83_.characters[i_97_] == characters[i_96_]); i_97_--)
				i_96_--;
			if (i_97_ == -1)
				return i_96_ + 1;
		}
		return -1;
	}

	public long getHashCodeLong(int i) {
		long l = (long) i;
		for (int i_98_ = 0; length > i_98_; i_98_++)
			l = (long) (characters[i_98_] & 0xff) + (l << 5) + -l;
		return l;
	}

	public static void method95(int i) {
		if (Class30.anInt534 == 0) {
			Class39_Sub5_Sub11.anInt1841 = 1;
			Class35.anIntArray621[0] = 1002;
			Class33.aClass3Array601[0] = Player.aClass3_2531;
			if (Class39_Sub5.anInt1348 != -1) {
				Class48.anInt904 = -1;
				Class39_Sub5_Sub4_Sub1.anInt2197 = -1;
				Login.method283(0, ISAAC.anInt1091, Class33.anInt599, (byte) 124, 0, 0, Class39_Sub5.anInt1348, 765, 503);
				Class39_Sub10.anInt1417 = Class48.anInt904;
				Class39_Sub5_Sub6.anInt1760 = Class39_Sub5_Sub4_Sub1.anInt2197;
			} else {
				Class18.method235((byte) 126);
				Class39_Sub5_Sub4_Sub1.anInt2197 = -1;
				Class48.anInt904 = -1;
				if (ISAAC.anInt1091 > 4 && Class33.anInt599 > 4 && ISAAC.anInt1091 < 516 && Class33.anInt599 < 338) {
					if (Class39_Sub11.openInterface != -1)
						Login.method283(4, ISAAC.anInt1091, Class33.anInt599, (byte) 126, 4, 0, Class39_Sub11.openInterface, 516, 338);
					else
						Class39_Sub13.method875(-65);
				}
				Class39_Sub5_Sub6.anInt1760 = Class39_Sub5_Sub4_Sub1.anInt2197;
				Class39_Sub10.anInt1417 = Class48.anInt904;
				Class39_Sub5_Sub4_Sub1.anInt2197 = -1;
				Class48.anInt904 = -1;
				boolean bool = false;
				if (ISAAC.anInt1091 > 553 && Class33.anInt599 > 205 && ISAAC.anInt1091 < 743 && Class33.anInt599 < 466) {
					if (Class39_Sub5_Sub4_Sub5.openSidebarInterface == -1) {
						if (Tile.anIntArray1914[Node.anInt728] != -1)
							Login.method283(553, ISAAC.anInt1091, Class33.anInt599, (byte) 123, 205, 1, (Tile.anIntArray1914[Node.anInt728]), 743, 466);
					} else
						Login.method283(553, ISAAC.anInt1091, Class33.anInt599, (byte) 114, 205, 1, Class39_Sub5_Sub4_Sub5.openSidebarInterface, 743, 466);
				}
				if (Class12.anInt194 != Class48.anInt904) {
					Class39_Sub14.aBoolean1520 = true;
					Class12.anInt194 = Class48.anInt904;
				}
				Class48.anInt904 = -1;
				if (Class39_Sub5_Sub4_Sub1.anInt2197 != Class39_Sub10.anInt1440) {
					Class39_Sub10.anInt1440 = Class39_Sub5_Sub4_Sub1.anInt2197;
					Class39_Sub14.aBoolean1520 = true;
				}
				Class39_Sub5_Sub4_Sub1.anInt2197 = -1;
				if (ISAAC.anInt1091 > 17 && Class33.anInt599 > 357 && ISAAC.anInt1091 < 496 && Class33.anInt599 < 453) {
					if (Tile.anInt1912 == -1) {
						if (ISAAC.anInt1095 == -1) {
							if (Class33.anInt599 < 434 && ISAAC.anInt1091 < 426)
								Class39_Sub5_Sub1.method471(-2, (Class33.anInt599 - 357), (ISAAC.anInt1091 - 17));
						} else
							Login.method283(17, ISAAC.anInt1091, Class33.anInt599, (byte) 112, 357, 3, ISAAC.anInt1095, 496, 453);
					} else
						Login.method283(17, ISAAC.anInt1091, Class33.anInt599, (byte) 123, 357, 2, Tile.anInt1912, 496, 453);
				}
				if ((Tile.anInt1912 != -1 || ISAAC.anInt1095 != -1) && RSInterface.anInt2071 != Class48.anInt904) {
					RSInterface.anInt2071 = Class48.anInt904;
					Class14.aBoolean245 = true;
				}
				if ((Tile.anInt1912 != -1 || ISAAC.anInt1095 != -1) && (Class39_Sub5_Sub4_Sub1.anInt2197 != Class39_Sub5_Sub16.anInt1982)) {
					Class14.aBoolean245 = true;
					Class39_Sub5_Sub16.anInt1982 = Class39_Sub5_Sub4_Sub1.anInt2197;
				}
				while (!bool) {
					bool = true;
					for (int i_99_ = 0; i_99_ < Class39_Sub5_Sub11.anInt1841 - 1; i_99_++) {
						if (Class35.anIntArray621[i_99_] < 1000 && Class35.anIntArray621[i_99_ + 1] > 1000) {
							bool = false;
							JString class3 = Class33.aClass3Array601[i_99_];
							Class33.aClass3Array601[i_99_] = Class33.aClass3Array601[i_99_ + 1];
							Class33.aClass3Array601[i_99_ + 1] = class3;
							int i_100_ = Class35.anIntArray621[i_99_];
							Class35.anIntArray621[i_99_] = Class35.anIntArray621[i_99_ + 1];
							Class35.anIntArray621[i_99_ + 1] = i_100_;
							i_100_ = Class12.anIntArray196[i_99_];
							Class12.anIntArray196[i_99_] = Class12.anIntArray196[i_99_ + 1];
							Class12.anIntArray196[i_99_ + 1] = i_100_;
							i_100_ = Class43.anIntArray820[i_99_];
							Class43.anIntArray820[i_99_] = Class43.anIntArray820[i_99_ + 1];
							Class43.anIntArray820[i_99_ + 1] = i_100_;
							i_100_ = Class11.anIntArray176[i_99_];
							Class11.anIntArray176[i_99_] = Class11.anIntArray176[i_99_ + 1];
							Class11.anIntArray176[i_99_ + 1] = i_100_;
						}
					}
				}
			}
		}
	}

	public int compareString(int i, JString class3_101_) {
		int i_102_;
		if (class3_101_.length >= length)
			i_102_ = length;
		else
			i_102_ = class3_101_.length;
		for (int i_103_ = 0; i_103_ < i_102_; i_103_++) {
			if (class3_101_.characters[i_103_] > characters[i_103_])
				return -1;
			if (characters[i_103_] > class3_101_.characters[i_103_])
				return 1;
		}
		if (class3_101_.length > length)
			return -1;
		if (length > class3_101_.length)
			return 1;
		return 0;
	}

	public boolean equalsIgnoreCase(JString class3_104_) {
		if (class3_104_ == null)
			return false;
		if (class3_104_.length != length)
			return false;
		for (int i_105_ = 0; length > i_105_; i_105_++) {
			byte i_106_ = characters[i_105_];
			byte i_107_ = class3_104_.characters[i_105_];
			if (i_107_ >= 65 && i_107_ <= 90 || i_107_ >= -64 && i_107_ <= -34 && i_107_ != -41)
				i_107_ += 32;
			if (i_106_ >= 65 && i_106_ <= 90 || i_106_ >= -64 && i_106_ <= -34 && i_106_ != -41)
				i_106_ += 32;
			if (i_107_ != i_106_)
				return false;
		}
		return true;
	}

	/* synthetic */public static Class classForName(String string) {
		try {
			return Class.forName(string);
		} catch (ClassNotFoundException classnotfoundexception) {
			throw new NoClassDefFoundError(classnotfoundexception.getMessage());
		}
	}

	static {
		aClass7_1227 = new Class7(64);
		aClass3_1235 = Class39_Sub5_Sub9.createJString(116, "Unexpected server response");
		aClass3_1234 = aClass3_1235;
		loginOutputStream = new PacketStream(5000);
		aClass3_1237 = Class39_Sub5_Sub9.createJString(123, "@cya@");
		anIntArray1239 = new int[4000];
		aClass3_1238 = Class39_Sub5_Sub9.createJString(109, "Schrifts-=tze geladen)3");
	}
}
